home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gtk-2.0 / gdk / gdkwindow.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  22.6 KB  |  624 lines

  1. /* GDK - The GIMP Drawing Kit
  2.  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  3.  *
  4.  * This library is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Lesser General Public
  6.  * License as published by the Free Software Foundation; either
  7.  * version 2 of the License, or (at your option) any later version.
  8.  *
  9.  * This library is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.  * Lesser General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU Lesser General Public
  15.  * License along with this library; if not, write to the
  16.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.  * Boston, MA 02111-1307, USA.
  18.  */
  19.  
  20. /*
  21.  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  22.  * file for a list of people on the GTK+ Team.  See the ChangeLog
  23.  * files for a list of changes.  These files are distributed with
  24.  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  25.  */
  26.  
  27. #ifndef __GDK_WINDOW_H__
  28. #define __GDK_WINDOW_H__
  29.  
  30. #include <gdk/gdkdrawable.h>
  31. #include <gdk/gdktypes.h>
  32. #include <gdk/gdkevents.h>
  33.  
  34. G_BEGIN_DECLS
  35.  
  36. typedef struct _GdkGeometry           GdkGeometry;
  37. typedef struct _GdkWindowAttr          GdkWindowAttr;
  38. typedef struct _GdkPointerHooks          GdkPointerHooks;
  39.  
  40. /* Classes of windows.
  41.  *   InputOutput: Almost every window should be of this type. Such windows
  42.  *          receive events and are also displayed on screen.
  43.  *   InputOnly: Used only in special circumstances when events need to be
  44.  *        stolen from another window or windows. Input only windows
  45.  *        have no visible output, so they are handy for placing over
  46.  *        top of a group of windows in order to grab the events (or
  47.  *        filter the events) from those windows.
  48.  */
  49. typedef enum
  50. {
  51.   GDK_INPUT_OUTPUT,
  52.   GDK_INPUT_ONLY
  53. } GdkWindowClass;
  54.  
  55. /* Types of windows.
  56.  *   Root: There is only 1 root window and it is initialized
  57.  *       at startup. Creating a window of type GDK_WINDOW_ROOT
  58.  *       is an error.
  59.  *   Toplevel: Windows which interact with the window manager.
  60.  *   Child: Windows which are children of some other type of window.
  61.  *        (Any other type of window). Most windows are child windows.
  62.  *   Dialog: A special kind of toplevel window which interacts with
  63.  *         the window manager slightly differently than a regular
  64.  *         toplevel window. Dialog windows should be used for any
  65.  *         transient window.
  66.  *   Foreign: A window that actually belongs to another application
  67.  */
  68. typedef enum
  69. {
  70.   GDK_WINDOW_ROOT,
  71.   GDK_WINDOW_TOPLEVEL,
  72.   GDK_WINDOW_CHILD,
  73.   GDK_WINDOW_DIALOG,
  74.   GDK_WINDOW_TEMP,
  75.   GDK_WINDOW_FOREIGN
  76. } GdkWindowType;
  77.  
  78. /* Window attribute mask values.
  79.  *   GDK_WA_TITLE: The "title" field is valid.
  80.  *   GDK_WA_X: The "x" field is valid.
  81.  *   GDK_WA_Y: The "y" field is valid.
  82.  *   GDK_WA_CURSOR: The "cursor" field is valid.
  83.  *   GDK_WA_COLORMAP: The "colormap" field is valid.
  84.  *   GDK_WA_VISUAL: The "visual" field is valid.
  85.  */
  86. typedef enum
  87. {
  88.   GDK_WA_TITLE      = 1 << 1,
  89.   GDK_WA_X      = 1 << 2,
  90.   GDK_WA_Y      = 1 << 3,
  91.   GDK_WA_CURSOR      = 1 << 4,
  92.   GDK_WA_COLORMAP = 1 << 5,
  93.   GDK_WA_VISUAL      = 1 << 6,
  94.   GDK_WA_WMCLASS  = 1 << 7,
  95.   GDK_WA_NOREDIR  = 1 << 8
  96. } GdkWindowAttributesType;
  97.  
  98. /* Size restriction enumeration.
  99.  */
  100. typedef enum
  101. {
  102.   GDK_HINT_POS           = 1 << 0,
  103.   GDK_HINT_MIN_SIZE    = 1 << 1,
  104.   GDK_HINT_MAX_SIZE    = 1 << 2,
  105.   GDK_HINT_BASE_SIZE   = 1 << 3,
  106.   GDK_HINT_ASPECT      = 1 << 4,
  107.   GDK_HINT_RESIZE_INC  = 1 << 5,
  108.   GDK_HINT_WIN_GRAVITY = 1 << 6,
  109.   GDK_HINT_USER_POS    = 1 << 7,
  110.   GDK_HINT_USER_SIZE   = 1 << 8
  111. } GdkWindowHints;
  112.  
  113.  
  114. /* Window type hints.
  115.  * These are hints for the window manager that indicate
  116.  * what type of function the window has. The window manager
  117.  * can use this when determining decoration and behaviour
  118.  * of the window. The hint must be set before mapping the
  119.  * window.
  120.  *
  121.  *   Normal: Normal toplevel window
  122.  *   Dialog: Dialog window
  123.  *   Menu: Window used to implement a menu.
  124.  *   Toolbar: Window used to implement toolbars.
  125.  */
  126. typedef enum
  127. {
  128.   GDK_WINDOW_TYPE_HINT_NORMAL,
  129.   GDK_WINDOW_TYPE_HINT_DIALOG,
  130.   GDK_WINDOW_TYPE_HINT_MENU,
  131.   GDK_WINDOW_TYPE_HINT_TOOLBAR,
  132.   GDK_WINDOW_TYPE_HINT_SPLASHSCREEN,
  133.   GDK_WINDOW_TYPE_HINT_UTILITY,
  134.   GDK_WINDOW_TYPE_HINT_DOCK,
  135.   GDK_WINDOW_TYPE_HINT_DESKTOP
  136. } GdkWindowTypeHint;
  137.  
  138.  
  139. /* The next two enumeration values current match the
  140.  * Motif constants. If this is changed, the implementation
  141.  * of gdk_window_set_decorations/gdk_window_set_functions
  142.  * will need to change as well.
  143.  */
  144. typedef enum
  145. {
  146.   GDK_DECOR_ALL        = 1 << 0,
  147.   GDK_DECOR_BORDER    = 1 << 1,
  148.   GDK_DECOR_RESIZEH    = 1 << 2,
  149.   GDK_DECOR_TITLE    = 1 << 3,
  150.   GDK_DECOR_MENU    = 1 << 4,
  151.   GDK_DECOR_MINIMIZE    = 1 << 5,
  152.   GDK_DECOR_MAXIMIZE    = 1 << 6
  153. } GdkWMDecoration;
  154.  
  155. typedef enum
  156. {
  157.   GDK_FUNC_ALL        = 1 << 0,
  158.   GDK_FUNC_RESIZE    = 1 << 1,
  159.   GDK_FUNC_MOVE        = 1 << 2,
  160.   GDK_FUNC_MINIMIZE    = 1 << 3,
  161.   GDK_FUNC_MAXIMIZE    = 1 << 4,
  162.   GDK_FUNC_CLOSE    = 1 << 5
  163. } GdkWMFunction;
  164.  
  165. /* Currently, these are the same values numerically as in the
  166.  * X protocol. If you change that, gdkwindow-x11.c/gdk_window_set_geometry_hints()
  167.  * will need fixing.
  168.  */
  169. typedef enum
  170. {
  171.   GDK_GRAVITY_NORTH_WEST = 1,
  172.   GDK_GRAVITY_NORTH,
  173.   GDK_GRAVITY_NORTH_EAST,
  174.   GDK_GRAVITY_WEST,
  175.   GDK_GRAVITY_CENTER,
  176.   GDK_GRAVITY_EAST,
  177.   GDK_GRAVITY_SOUTH_WEST,
  178.   GDK_GRAVITY_SOUTH,
  179.   GDK_GRAVITY_SOUTH_EAST,
  180.   GDK_GRAVITY_STATIC
  181. } GdkGravity;
  182.  
  183.  
  184. typedef enum
  185. {
  186.   GDK_WINDOW_EDGE_NORTH_WEST,
  187.   GDK_WINDOW_EDGE_NORTH,
  188.   GDK_WINDOW_EDGE_NORTH_EAST,
  189.   GDK_WINDOW_EDGE_WEST,
  190.   GDK_WINDOW_EDGE_EAST,
  191.   GDK_WINDOW_EDGE_SOUTH_WEST,
  192.   GDK_WINDOW_EDGE_SOUTH,
  193.   GDK_WINDOW_EDGE_SOUTH_EAST  
  194. } GdkWindowEdge;
  195.  
  196. struct _GdkWindowAttr
  197. {
  198.   gchar *title;
  199.   gint event_mask;
  200.   gint x, y;
  201.   gint width;
  202.   gint height;
  203.   GdkWindowClass wclass;
  204.   GdkVisual *visual;
  205.   GdkColormap *colormap;
  206.   GdkWindowType window_type;
  207.   GdkCursor *cursor;
  208.   gchar *wmclass_name;
  209.   gchar *wmclass_class;
  210.   gboolean override_redirect;
  211. };
  212.  
  213. struct _GdkGeometry
  214. {
  215.   gint min_width;
  216.   gint min_height;
  217.   gint max_width;
  218.   gint max_height;
  219.   gint base_width;
  220.   gint base_height;
  221.   gint width_inc;
  222.   gint height_inc;
  223.   gdouble min_aspect;
  224.   gdouble max_aspect;
  225.   GdkGravity win_gravity;
  226. };
  227.  
  228. struct _GdkPointerHooks 
  229. {
  230.   GdkWindow* (*get_pointer)       (GdkWindow       *window,
  231.                        gint               *x,
  232.                        gint          *y,
  233.                        GdkModifierType *mask);
  234.   GdkWindow* (*window_at_pointer) (GdkScreen       *screen, /* unused */
  235.                                    gint            *win_x,
  236.                                    gint            *win_y);
  237. };
  238.  
  239. typedef struct _GdkWindowObject GdkWindowObject;
  240. typedef struct _GdkWindowObjectClass GdkWindowObjectClass;
  241.  
  242. #define GDK_TYPE_WINDOW              (gdk_window_object_get_type ())
  243. #define GDK_WINDOW(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOW, GdkWindow))
  244. #define GDK_WINDOW_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WINDOW, GdkWindowObjectClass))
  245. #define GDK_IS_WINDOW(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOW))
  246. #define GDK_IS_WINDOW_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WINDOW))
  247. #define GDK_WINDOW_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WINDOW, GdkWindowObjectClass))
  248. #define GDK_WINDOW_OBJECT(object)    ((GdkWindowObject *) GDK_WINDOW (object))
  249.  
  250. struct _GdkWindowObject
  251. {
  252.   GdkDrawable parent_instance;
  253.  
  254.   GdkDrawable *impl; /* window-system-specific delegate object */  
  255.   
  256.   GdkWindowObject *parent;
  257.  
  258.   gpointer user_data;
  259.  
  260.   gint x;
  261.   gint y;
  262.   
  263.   gint extension_events;
  264.  
  265.   GList *filters;
  266.   GList *children;
  267.  
  268.   GdkColor bg_color;
  269.   GdkPixmap *bg_pixmap;
  270.   
  271.   GSList *paint_stack;
  272.   
  273.   GdkRegion *update_area;
  274.   guint update_freeze_count;
  275.   
  276.   guint8 window_type;
  277.   guint8 depth;
  278.   guint8 resize_count;
  279.  
  280.   GdkWindowState state;
  281.   
  282.   guint guffaw_gravity : 1;
  283.   guint input_only : 1;
  284.   guint modal_hint : 1;
  285.   
  286.   guint destroyed : 2;
  287.  
  288.   guint accept_focus : 1;
  289.   guint focus_on_map : 1;
  290.   guint shaped : 1;
  291.   
  292.   GdkEventMask event_mask;
  293. };
  294.  
  295. struct _GdkWindowObjectClass
  296. {
  297.   GdkDrawableClass parent_class;
  298. };
  299.  
  300. /* Windows
  301.  */
  302. GType         gdk_window_object_get_type       (void) G_GNUC_CONST;
  303. GdkWindow*    gdk_window_new                   (GdkWindow     *parent,
  304.                                                 GdkWindowAttr *attributes,
  305.                                                 gint           attributes_mask);
  306. void          gdk_window_destroy               (GdkWindow     *window);
  307. GdkWindowType gdk_window_get_window_type       (GdkWindow     *window);
  308. GdkWindow*    gdk_window_at_pointer            (gint          *win_x,
  309.                                                 gint          *win_y);
  310. void          gdk_window_show                  (GdkWindow     *window);
  311. void          gdk_window_hide                  (GdkWindow     *window);
  312. void          gdk_window_withdraw              (GdkWindow     *window);
  313. void          gdk_window_show_unraised         (GdkWindow     *window);
  314. void          gdk_window_move                  (GdkWindow     *window,
  315.                                                 gint           x,
  316.                                                 gint           y);
  317. void          gdk_window_resize                (GdkWindow     *window,
  318.                                                 gint           width,
  319.                                                 gint           height);
  320. void          gdk_window_move_resize           (GdkWindow     *window,
  321.                                                 gint           x,
  322.                                                 gint           y,
  323.                                                 gint           width,
  324.                                                 gint           height);
  325. void          gdk_window_reparent              (GdkWindow     *window,
  326.                                                 GdkWindow     *new_parent,
  327.                                                 gint           x,
  328.                                                 gint           y);
  329. void          gdk_window_clear                 (GdkWindow     *window);
  330. void          gdk_window_clear_area            (GdkWindow     *window,
  331.                                                 gint           x,
  332.                                                 gint           y,
  333.                                                 gint           width,
  334.                                                 gint           height);
  335. void          gdk_window_clear_area_e          (GdkWindow     *window,
  336.                                                 gint           x,
  337.                                                 gint           y,
  338.                                                 gint           width,
  339.                                                 gint           height);
  340. void          gdk_window_raise                 (GdkWindow     *window);
  341. void          gdk_window_lower                 (GdkWindow     *window);
  342. void          gdk_window_focus                 (GdkWindow     *window,
  343.                                                 guint32        timestamp);
  344. void          gdk_window_set_user_data         (GdkWindow     *window,
  345.                                                 gpointer       user_data);
  346. void          gdk_window_set_override_redirect (GdkWindow     *window,
  347.                                                 gboolean       override_redirect);
  348. void          gdk_window_set_accept_focus      (GdkWindow     *window,
  349.                             gboolean       accept_focus);
  350. void          gdk_window_set_focus_on_map      (GdkWindow     *window,
  351.                             gboolean       focus_on_map);
  352. void          gdk_window_add_filter            (GdkWindow     *window,
  353.                                                 GdkFilterFunc  function,
  354.                                                 gpointer       data);
  355. void          gdk_window_remove_filter         (GdkWindow     *window,
  356.                                                 GdkFilterFunc  function,
  357.                                                 gpointer       data);
  358. void          gdk_window_scroll                (GdkWindow *window,
  359.                                                 gint       dx,
  360.                                                 gint       dy);
  361. void          gdk_window_move_region           (GdkWindow *window,
  362.                         GdkRegion *region,
  363.                         gint       dx,
  364.                         gint       dy);
  365.  
  366. /* 
  367.  * This allows for making shaped (partially transparent) windows
  368.  * - cool feature, needed for Drag and Drag for example.
  369.  *  The shape_mask can be the mask
  370.  *  from gdk_pixmap_create_from_xpm.   Stefan Wille
  371.  */
  372. void gdk_window_shape_combine_mask  (GdkWindow        *window,
  373.                                      GdkBitmap        *mask,
  374.                                      gint         x,
  375.                                      gint         y);
  376. void gdk_window_shape_combine_region (GdkWindow        *window,
  377.                                       GdkRegion     *shape_region,
  378.                                       gint         offset_x,
  379.                                       gint         offset_y);
  380.  
  381. /*
  382.  * This routine allows you to quickly take the shapes of all the child windows
  383.  * of a window and use their shapes as the shape mask for this window - useful
  384.  * for container windows that dont want to look like a big box
  385.  * 
  386.  * - Raster
  387.  */
  388. void gdk_window_set_child_shapes (GdkWindow *window);
  389.  
  390. /*
  391.  * This routine allows you to merge (ie ADD) child shapes to your
  392.  * own window's shape keeping its current shape and ADDING the child
  393.  * shapes to it.
  394.  * 
  395.  * - Raster
  396.  */
  397. void gdk_window_merge_child_shapes (GdkWindow *window);
  398.  
  399. /*
  400.  * Check if a window has been shown, and whether all its
  401.  * parents up to a toplevel have been shown, respectively.
  402.  * Note that a window that is_viewable below is not necessarily
  403.  * viewable in the X sense.
  404.  */
  405. gboolean gdk_window_is_visible     (GdkWindow *window);
  406. gboolean gdk_window_is_viewable    (GdkWindow *window);
  407.  
  408. GdkWindowState gdk_window_get_state (GdkWindow *window);
  409.  
  410. /* Set static bit gravity on the parent, and static
  411.  * window gravity on all children.
  412.  */
  413. gboolean gdk_window_set_static_gravities (GdkWindow *window,
  414.                       gboolean   use_static);   
  415.  
  416. /* Functions to create/lookup windows from their native equivalents */ 
  417. #ifndef GDK_MULTIHEAD_SAFE
  418. GdkWindow*    gdk_window_foreign_new (GdkNativeWindow anid);
  419. GdkWindow*    gdk_window_lookup      (GdkNativeWindow anid);
  420. #endif
  421. GdkWindow    *gdk_window_foreign_new_for_display (GdkDisplay      *display,
  422.                           GdkNativeWindow  anid);
  423. GdkWindow*    gdk_window_lookup_for_display (GdkDisplay      *display,
  424.                          GdkNativeWindow  anid);
  425.  
  426.  
  427. /* GdkWindow */
  428.  
  429. #ifndef GDK_DISABLE_DEPRECATED
  430. void          gdk_window_set_hints     (GdkWindow      *window,
  431.                       gint           x,
  432.                       gint           y,
  433.                       gint           min_width,
  434.                       gint           min_height,
  435.                       gint           max_width,
  436.                       gint           max_height,
  437.                       gint           flags);
  438. #endif
  439. void          gdk_window_set_type_hint    (GdkWindow       *window,
  440.                        GdkWindowTypeHint hint);
  441. void          gdk_window_set_modal_hint   (GdkWindow       *window,
  442.                                            gboolean         modal);
  443.  
  444. void gdk_window_set_skip_taskbar_hint (GdkWindow *window,
  445.                                        gboolean   skips_taskbar);
  446. void gdk_window_set_skip_pager_hint   (GdkWindow *window,
  447.                                        gboolean   skips_pager);
  448. void gdk_window_set_urgency_hint      (GdkWindow *window,
  449.                        gboolean   urgent);
  450.  
  451. void          gdk_window_set_geometry_hints (GdkWindow        *window,
  452.                          GdkGeometry      *geometry,
  453.                          GdkWindowHints    geom_mask);
  454. void          gdk_set_sm_client_id         (const gchar *sm_client_id);
  455.  
  456. void          gdk_window_begin_paint_rect   (GdkWindow    *window,
  457.                          GdkRectangle *rectangle);
  458. void          gdk_window_begin_paint_region (GdkWindow    *window,
  459.                          GdkRegion    *region);
  460. void          gdk_window_end_paint          (GdkWindow    *window);
  461.  
  462. void          gdk_window_set_title       (GdkWindow      *window,
  463.                         const gchar      *title);
  464. void          gdk_window_set_role          (GdkWindow       *window,
  465.                         const gchar     *role);
  466. void          gdk_window_set_transient_for (GdkWindow       *window, 
  467.                         GdkWindow       *parent);
  468. void          gdk_window_set_background     (GdkWindow      *window,
  469.                       const GdkColor  *color);
  470. void          gdk_window_set_back_pixmap (GdkWindow      *window,
  471.                       GdkPixmap      *pixmap,
  472.                       gboolean       parent_relative);
  473. void          gdk_window_set_cursor     (GdkWindow      *window,
  474.                       GdkCursor      *cursor);
  475. void          gdk_window_get_user_data     (GdkWindow      *window,
  476.                       gpointer      *data);
  477. void          gdk_window_get_geometry     (GdkWindow      *window,
  478.                       gint          *x,
  479.                       gint          *y,
  480.                       gint          *width,
  481.                       gint          *height,
  482.                       gint          *depth);
  483. void          gdk_window_get_position     (GdkWindow      *window,
  484.                       gint          *x,
  485.                       gint          *y);
  486. gint          gdk_window_get_origin     (GdkWindow      *window,
  487.                       gint          *x,
  488.                       gint          *y);
  489.  
  490. #if !defined (GDK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
  491. /* Used by gtk_handle_box_button_changed () */
  492. gboolean      gdk_window_get_deskrelative_origin (GdkWindow      *window,
  493.                       gint          *x,
  494.                       gint          *y);
  495. #endif
  496.  
  497. void          gdk_window_get_root_origin (GdkWindow      *window,
  498.                       gint          *x,
  499.                       gint          *y);
  500. void          gdk_window_get_frame_extents (GdkWindow     *window,
  501.                                             GdkRectangle  *rect);
  502. GdkWindow*    gdk_window_get_pointer     (GdkWindow      *window,
  503.                       gint          *x,
  504.                       gint          *y,
  505.                       GdkModifierType *mask);
  506. GdkWindow *   gdk_window_get_parent      (GdkWindow       *window);
  507. GdkWindow *   gdk_window_get_toplevel    (GdkWindow       *window);
  508.  
  509. GList *          gdk_window_get_children     (GdkWindow      *window);
  510. GList *       gdk_window_peek_children   (GdkWindow       *window);
  511. GdkEventMask  gdk_window_get_events     (GdkWindow      *window);
  512. void          gdk_window_set_events     (GdkWindow      *window,
  513.                       GdkEventMask       event_mask);
  514.  
  515. void          gdk_window_set_icon_list   (GdkWindow       *window,
  516.                       GList           *pixbufs);
  517. void          gdk_window_set_icon     (GdkWindow      *window, 
  518.                       GdkWindow      *icon_window,
  519.                       GdkPixmap      *pixmap,
  520.                       GdkBitmap      *mask);
  521. void          gdk_window_set_icon_name     (GdkWindow      *window, 
  522.                       const gchar      *name);
  523. void          gdk_window_set_group     (GdkWindow      *window, 
  524.                       GdkWindow      *leader);
  525. GdkWindow*    gdk_window_get_group     (GdkWindow      *window);
  526. void          gdk_window_set_decorations (GdkWindow      *window,
  527.                       GdkWMDecoration  decorations);
  528. gboolean      gdk_window_get_decorations (GdkWindow       *window,
  529.                       GdkWMDecoration *decorations);
  530. void          gdk_window_set_functions     (GdkWindow      *window,
  531.                       GdkWMFunction       functions);
  532. #ifndef GDK_MULTIHEAD_SAFE
  533. GList *       gdk_window_get_toplevels   (void);
  534. #endif
  535.  
  536. void          gdk_window_iconify         (GdkWindow       *window);
  537. void          gdk_window_deiconify       (GdkWindow       *window);
  538. void          gdk_window_stick           (GdkWindow       *window);
  539. void          gdk_window_unstick         (GdkWindow       *window);
  540. void          gdk_window_maximize        (GdkWindow       *window);
  541. void          gdk_window_unmaximize      (GdkWindow       *window);
  542. void          gdk_window_fullscreen      (GdkWindow       *window);
  543. void          gdk_window_unfullscreen    (GdkWindow       *window);
  544. void          gdk_window_set_keep_above  (GdkWindow       *window,
  545.                                           gboolean         setting);
  546. void          gdk_window_set_keep_below  (GdkWindow       *window,
  547.                                           gboolean         setting);
  548.  
  549. void          gdk_window_register_dnd    (GdkWindow       *window);
  550.  
  551. void gdk_window_begin_resize_drag (GdkWindow     *window,
  552.                                    GdkWindowEdge  edge,
  553.                                    gint           button,
  554.                                    gint           root_x,
  555.                                    gint           root_y,
  556.                                    guint32        timestamp);
  557. void gdk_window_begin_move_drag   (GdkWindow     *window,
  558.                                    gint           button,
  559.                                    gint           root_x,
  560.                                    gint           root_y,
  561.                                    guint32        timestamp);
  562.  
  563. /* Interface for dirty-region queueing */
  564. void       gdk_window_invalidate_rect           (GdkWindow    *window,
  565.                              GdkRectangle *rect,
  566.                              gboolean      invalidate_children);
  567. void       gdk_window_invalidate_region         (GdkWindow    *window,
  568.                              GdkRegion    *region,
  569.                              gboolean      invalidate_children);
  570. void       gdk_window_invalidate_maybe_recurse  (GdkWindow *window,
  571.                          GdkRegion *region,
  572.                          gboolean (*child_func) (GdkWindow *, gpointer),
  573.                          gpointer   user_data);
  574. GdkRegion *gdk_window_get_update_area     (GdkWindow    *window);
  575.  
  576. void       gdk_window_freeze_updates      (GdkWindow    *window);
  577. void       gdk_window_thaw_updates        (GdkWindow    *window);
  578.  
  579. void       gdk_window_process_all_updates (void);
  580. void       gdk_window_process_updates     (GdkWindow    *window,
  581.                        gboolean      update_children);
  582.  
  583. /* Enable/disable flicker, so you can tell if your code is inefficient. */
  584. void       gdk_window_set_debug_updates   (gboolean      setting);
  585.  
  586. void       gdk_window_constrain_size      (GdkGeometry  *geometry,
  587.                                            guint         flags,
  588.                                            gint          width,
  589.                                            gint          height,
  590.                                            gint         *new_width,
  591.                                            gint         *new_height);
  592.  
  593. void gdk_window_get_internal_paint_info (GdkWindow    *window,
  594.                      GdkDrawable **real_drawable,
  595.                      gint         *x_offset,
  596.                      gint         *y_offset);
  597.  
  598. void gdk_window_enable_synchronized_configure (GdkWindow *window);
  599. void gdk_window_configure_finished            (GdkWindow *window);
  600.  
  601. #ifndef GDK_MULTIHEAD_SAFE
  602. GdkPointerHooks *gdk_set_pointer_hooks (const GdkPointerHooks *new_hooks);   
  603. #endif /* GDK_MULTIHEAD_SAFE */
  604.  
  605. GdkWindow *gdk_get_default_root_window (void);
  606.  
  607. #ifndef GDK_DISABLE_DEPRECATED
  608. #define GDK_ROOT_PARENT()             (gdk_get_default_root_window ())
  609. #define gdk_window_get_size            gdk_drawable_get_size
  610. #define gdk_window_get_type            gdk_window_get_window_type
  611. #define gdk_window_get_colormap        gdk_drawable_get_colormap
  612. #define gdk_window_set_colormap        gdk_drawable_set_colormap
  613. #define gdk_window_get_visual          gdk_drawable_get_visual
  614. #define gdk_window_ref                 gdk_drawable_ref
  615. #define gdk_window_unref               gdk_drawable_unref
  616.  
  617. #define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height) \
  618.    gdk_draw_pixmap(drawable,gc,source_drawable,source_x,source_y,x,y,width,height)
  619. #endif /* GDK_DISABLE_DEPRECATED */
  620.  
  621. G_END_DECLS
  622.  
  623. #endif /* __GDK_WINDOW_H__ */
  624.